package dao.impl;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.NoResultException;
import javax.persistence.Query;

import common.dao.impl.GenericJpaDAOImpl;

import dao.PedidoVentaDAO;
import entities.PedidoVenta;

@Stateless
public class PedidoVentaDAOBean extends GenericJpaDAOImpl<PedidoVenta> implements PedidoVentaDAO {

	@Override
	public PedidoVenta find(PedidoVenta pedidoVenta) {
		PedidoVenta pedidoVentaObtenido = null;
		try{
			String queryString = "SELECT pv FROM PedidoVenta pv " +
									"WHERE pv.clienteId = :clienteId " +
										"AND pv.fechaRecepcion = :fechaRecepcion ";
			Query query = entityManager.createQuery(queryString);
			query.setParameter("clienteId", pedidoVenta.getClienteId());
			query.setParameter("fechaRecepcion", pedidoVenta.getFechaRecepcion());
			
			pedidoVentaObtenido = (PedidoVenta) query.getSingleResult();
		}catch(NoResultException e){
			System.out.println(e.getMessage() + "obtener rodamiento por rodamiento");
		}
		return pedidoVentaObtenido;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<PedidoVenta> findAllOrderByFecha() {
		List<PedidoVenta> pedidosVenta= null;
		try{
			Query query = this.entityManager.createQuery("SELECT pv FROM PedidoVenta pv " +
															" ORDER BY pv.fechaRecepcion ");
			pedidosVenta = (List<PedidoVenta>) query.getResultList();
		}catch(NoResultException e){
			System.out.println(e.getMessage() + "Obtener proveeedor por razon social");
		}
		return pedidosVenta;
	}

}
